home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 201-225 / disk_222 / plplot / src / source.zoo / plvpor.c < prev    next >
C/C++ Source or Header  |  1989-05-15  |  1KB  |  41 lines

  1. /* Sets the edges of the viewport to the specified normalized subpage */
  2. /* coordinates */
  3.  
  4. #include "plplot.h"
  5.  
  6. void plvpor(xmin, xmax, ymin, ymax)
  7. float xmin, xmax, ymin, ymax;
  8. {
  9.     float spdxmi, spdxma, spdymi, spdyma;
  10.     float vpdxmi, vpdxma, vpdymi, vpdyma;
  11.     int vppxmi, vppxma, vppymi, vppyma;
  12.     
  13.     int nx, ny, cs;
  14.  
  15.     int level;
  16.  
  17.     glev(&level);
  18.     if (level < 1) fatal("Please call PLSTAR before calling PLVPOR.");
  19.     if((xmin>=xmax)||(ymin>=ymax)||(xmin<0.)||
  20.        (ymin<0.)||(xmax>1.)||(ymax>1.))
  21.         fatal("Invalid limits in PLSVPA.");
  22.  
  23.     gsub(&nx,&ny,&cs);
  24.     if ((cs<=0) || (cs>(nx*ny)))
  25.         fatal("Please call PLADV or PLENV to go to a subpage.");
  26.     gspd(&spdxmi,&spdxma,&spdymi,&spdyma);
  27.     vpdxmi = spdxmi + (spdxma - spdxmi) * xmin;
  28.     vpdxma = spdxmi + (spdxma - spdxmi) * xmax;
  29.     vpdymi = spdymi + (spdyma - spdymi) * ymin;
  30.     vpdyma = spdymi + (spdyma - spdymi) * ymax;
  31.     svpd(vpdxmi,vpdxma,vpdymi,vpdyma);
  32.  
  33.     vppxmi = dcpcx(vpdxmi);
  34.     vppxma = dcpcx(vpdxma);
  35.     vppymi = dcpcy(vpdymi);
  36.     vppyma = dcpcy(vpdyma);
  37.     svpp(vppxmi,vppxma,vppymi,vppyma);
  38.     sclp(vppxmi,vppxma,vppymi,vppyma);
  39.     slev(2);
  40. }
  41.